package com.windea.study.kotlin.jvm.crypt.sections

import java.security.*

object SignatureUtils {
	//input可以是查询参数字符串
	fun sign(input: ByteArray, privateKey: PrivateKey): ByteArray {
		//获取数字签名实例对象
		val signature = Signature.getInstance("SHA256withRSA")
		//初始化签名
		signature.initSign(privateKey)
		//设置数据源
		signature.update(input)
		//签名
		return signature.sign()
	}
	
	//input可以是查询参数字符串
	fun verify(input: ByteArray, publicKey: PublicKey, sign: ByteArray): Boolean {
		val signature = Signature.getInstance("SHA256withRSA")
		//初始化签名
		signature.initVerify(publicKey)
		//传入数据源
		signature.update(input)
		//校验签名信息
		return signature.verify(sign)
	}
}
